package top.techqi.usbd

import android.hardware.usb.UsbDevice
import android.util.SparseArray

interface UsbFinder {
    /**
     * 探测设备的端口数量以及驱动
     *
     * @param device 待探测USB设备
     * @param remains 待探测的UsbInterface ID集合，如果支持该端口，则从集合中移除
     * @param drivers 支持的设备驱动列表，Key为接口号，值为<名称, 驱动类>
     *
     * @return 支持的端口数量
     */
    fun detectDrivers(
        device: UsbDevice, remains: MutableSet<Int>,
        drivers: SparseArray<Pair<String, Class<out UsbDriver>>>
    ): Int
}
